Thanks a lot for the reply!
I had a bug I recently introduced in my app where I missed syncing model/UI with a selection change.
I was already using the target-action but my app is pretty large and also programmatically changes the selection in many different places. As far as a I know there is no way to pick up all selection changes globally (other than the binding) so I decided to try the binding but that didn't work out as described in the original post.
So instead of the binding to resolve I'm now overriding four different set methods (in addition to responding in the target-action).
- (void)selectRow:(NSInteger)row inColumn:(NSInteger)column;
- (void)selectRowIndexes:(NSIndexSet *)indexes inColumn:(NSInteger)column
-(void)setSelectionIndexPath:(NSIndexPath *)selectionIndexPath
-(void)setSelectionIndexPaths:(NSArray<NSIndexPath *> *)selectionIndexPaths
Maybe overriding only two is required, not sure but if so that is undocumented and subject to change anyway.
So a binding or a notification like NSBrowserSelectionDidChangeNotification would be preferred.
and FBs from real-world cases like yours raise the priority on those gaps.
I've been filing enhancement/bugs on NSBrowser for nearly 10 years.
Searching Feedback Assistant I filed something about selection change in 2017:
FB5335246
My most recent NSBrowser Feedbacks (though unrelated to this):
FB22704799
FB22641162
FB5417493
FB20298148
Old school:
FB5447156
--
Unfortunately NSBrowser seems to be frozen in time. I've thought about writing my own several times over the years but I'm always working on other things and I usually find a workaround for the browser (which takes a long time to write and is frustrating) so I haven't been able to motivate myself to write my own completely from scratch.
I think column view is like everyone's favorite view type in Finder...so it would be great if this control got some love from Apple!